package cn.itcast.tanhua.dubbo.server.api;

import cn.itcast.tanhua.dubbo.server.enums.HuanXinMessageType;
import cn.itcast.tanhua.dubbo.server.pojo.HuanXinUser;

/**
 * @InterfaceName HuanXinApi
 * @Description 环信接口
 * @Author Mr.Tan
 * @Date 2021/6/6 20:28
 * @Version 1.0
 */
public interface HuanXinApi {
    /**
     * 获取环信token
     *
     * @param
     * @return
     */
    String getToken();

    /**
     * 注册环信用户
     *
     * @param userId
     * @return
     */
    Boolean register(Long userId);

    /**
     * 根据用户id查询环信用户
     *
     * @param userId
     * @return
     */
    HuanXinUser queryHuanXinUser(Long userId);

    /**
     * 通过用户名查询环信用户
     *
     * @param userName
     * @return
     */
    HuanXinUser queryUserByUserName(String userName);

    /**
     * 添加好友（双向关系）
     *
     * @param userId
     * @param friendId
     * @return
     */
    Boolean addUserFriend(Long userId, Long friendId);

    /**
     * 删除好友
     *
     * @param userId
     * @param friendId
     * @return
     */
    Boolean removeUserFriend(Long userId, Long friendId);

    /**
     * 回复信息
     *
     * @param targetUserName
     * @param huanXinMessageType
     * @param msg
     * @return
     */
    Boolean sendMsgFromAdmin(String targetUserName, HuanXinMessageType huanXinMessageType, String msg);
}
